package com.jobs.dal;

import java.io.Serializable;
import java.util.List;

/**
 * 针对单个Entity对象的操作定义.不依赖于具体ORM实现方案.
 */
public interface EntityDao<T> {

    T get(Serializable id);

    List<T> getAll();

    @SuppressWarnings("hiding")
    public <T> List<T> getAll(Class<T> entityClass);

    void save(Object o);

    void remove(Object o);

    void removeById(Serializable id);

    /**
     * 获取Entity对象的主键名.
     */
    @SuppressWarnings("unchecked")
    String getIdName(Class clazz);
}
